<!--{
	"Title": "Go + App Engine",
	"Template": true
}-->
      <article>
        <h1>
	
	Go <img src="http://weekly.golang.org/doc/gopher/frontpage.png"  height="64px"> + App Engine <img src="images/appengine_final.png" height="64px"> = <img src="http://code.google.com/p/appengine-go/logo?cct=1325616189">
        </h1>
        <p>	 
          Johan Euphrosine
          <br>
          2012年3月15日
        </p>
	<a class="selflink" href="http://proppy-go-ae.appspot.com/">proppy-go-ae.appspot.com</a>
      </article>

     <article>
	<h3>关于我</h3>
	<p>
	  <ul>
	    <img class="photo" src="images/proppy.jpg">
	    <li>Johan Euphrosine &lt;proppy&#64;google.com&gt;</li>
	    <li>Google  <span class="swiss">苏黎世</span>办公室</li>
	    <li>开发者项目工程师</li>
	    <li>App Engine <img src="images/appengine_final.png" height="24px"> 开发者社区支持人员</li>
	    <li><a href="http://profiles.google.com/proppy">profiles.google.com/proppy</a></li>
	  </ul>
	</p>
	<a class="selflink" href="http://proppy-go-ae.appspot.com/">proppy-go-ae.appspot.com</a>
      </article>
      
      <article>
        <h3>
          App Engine
        </h3>
        <p>
	App Engine 允许用户在 Google 的基础设施之上构建自己的 web 应用
        </p>
	<a class="selflink" href="http://proppy-go-ae.appspot.com/">proppy-go-ae.appspot.com</a>
      </article>

      <article>
        <h3>
          Go Runtime
        </h3>
        <p>
	<ul>
		<li>原生代码</li>
		<li>低内存消耗</li>
		<li>并行设计</li>
	</ul>
        </p>
	<a class="selflink" href="http://proppy-go-ae.appspot.com/">proppy-go-ae.appspot.com</a>
      </article>


      <article class="nobackground">
        <h3>
          Hello Gopher!
        </h3>

		{{code "/doc/presentations/progginator/gopher/hello.go" "/package/" "/STOP/"}}
	<a class="selflink" href="http://proppy-go-ae.appspot.com/">proppy-go-ae.appspot.com</a>
      </article>

      <article>
        <h3>
          Hello App Engine!
        </h3>
		{{code "/doc/presentations/progginator/app.yaml" "/application/" "/_go_app/"}}
		<pre>$ dev_appserver.py myapp/</pre>
		<pre>$ appcfg.py update myapp/</pre>
	<a class="selflink" href="http://proppy-go-ae.appspot.com/">proppy-go-ae.appspot.com</a>
      </article>

      <article>
        <h3>
          演示
        </h3>
        <p>
		<a href="/hello">Hello Gopher!</a>
        </p>
	<a class="selflink" href="http://proppy-go-ae.appspot.com/">proppy-go-ae.appspot.com</a>
      </article>

    <article>
        <h3>
          Hello hackernews! （XML 解析）
        </h3>
		{{code "/doc/presentations/progginator/gopher/hackernews.go" "/package/" "/STOP/"}}
	<a class="selflink" href="http://proppy-go-ae.appspot.com/">proppy-go-ae.appspot.com</a>
      </article>

      <article class="nobackground">
        <h3>
        	将 XML 映射为 Go 数据类型
        </h3>
	
		{{code "/doc/presentations/progginator/hn.xml"}}
		{{code "/doc/presentations/progginator/gopher/feed.go" "/type HNFeed/" "/STOP/"}}
	<a class="selflink" href="http://proppy-go-ae.appspot.com/">proppy-go-ae.appspot.com</a>
      </article>


       <article class="nobackground">
        <h3>
        解码
        </h3>
		{{code "/doc/presentations/progginator/gopher/hackernews.go" "/func hackernewsItems/" "/STOP/"}}
	<a class="selflink" href="http://proppy-go-ae.appspot.com/">proppy-go-ae.appspot.com</a>
      </article>

       <article class="nobackground">
        <h3>
        并输出
        </h3>
     
		{{code "/doc/presentations/progginator/gopher/hackernews.go" "/func hackernews\\(/" "/STOP/"}}
	<a class="selflink" href="http://proppy-go-ae.appspot.com/">proppy-go-ae.appspot.com</a>
      </article>


     <article>
        <h3>
        演示
        </h3>
	<p>
		<a href="/hackernews">Hello Hacker News!</a>
	</p>
	<a class="selflink" href="http://proppy-go-ae.appspot.com/">proppy-go-ae.appspot.com</a>
      </article>


      <article>
        <h3>
          Hello proggit! （JSON 解析）
        </h3>
      
		{{code "/doc/presentations/progginator/gopher/proggit.go" "/package/" "/STOP/"}}
 	<a class="selflink" href="http://proppy-go-ae.appspot.com/">proppy-go-ae.appspot.com</a>
      </article>

      <article class="nobackground">
        <h3>
        	将 Json 映射为 Go 数据类型
        </h3>
   
		<pre>
{"data": { "children": [
   {"data": { "title": ... , "url": ...}}, ...</pre>
		{{code "/doc/presentations/progginator/gopher/feed.go" "/type RedditFeed/" "/STOP/"}}
		{{code "/doc/presentations/progginator/gopher/feed.go" "/type Item/" "/STOP/"}}
    	<a class="selflink" href="http://proppy-go-ae.appspot.com/">proppy-go-ae.appspot.com</a>
      </article>


       <article class="nobackground">
        <h3>
        解码
        </h3>
   
		{{code "/doc/presentations/progginator/gopher/proggit.go" "/func proggitItems/" "/STOP/"}}
    	<a class="selflink" href="http://proppy-go-ae.appspot.com/">proppy-go-ae.appspot.com</a>
      </article>


       <article class="nobackground">
        <h3>
        并输出
        </h3>
		{{code "/doc/presentations/progginator/gopher/proggit.go" "/func proggit/" "/STOP/"}}
	<a class="selflink" href="http://proppy-go-ae.appspot.com/">proppy-go-ae.appspot.com</a>
      </article>

    <article>
        <h3>
        演示
        </h3>
	<p>
		<a href="/proggit">Hello Proggit!</a>
	</p>
	<a class="selflink" href="http://proppy-go-ae.appspot.com/">proppy-go-ae.appspot.com</a>
      </article>

  <article>
        <h3>
        Progginator! （整合）
        </h3>
		{{code "/doc/presentations/progginator/gopher/main.go" "/func progginator/" "/STOP/"}}
	<a class="selflink" href="http://proppy-go-ae.appspot.com/">proppy-go-ae.appspot.com</a>
      </article>

<article>
	<h3>
	演示
	</h3>
	<p>
		<a href="/progginator">Progginator!</a>
	<a class="selflink" href="http://proppy-go-ae.appspot.com/">proppy-go-ae.appspot.com</a>
	</p>
	<p>命令行输出：</p>
<pre>
2012-03-15 04:17:59.148 hackernews: 261.695ms
2012-03-15 04:17:59.246 proggit: 97.961ms
2012-03-15 04:17:59.246 progginator: 359.822ms
</pre>
</article>

	<article class="nobackground">
	<h3>
	并行处理
	</h3>
		{{code "/doc/presentations/progginator/gopher/main.go" "/func progginator_/" "/STOP/"}}
	<a class="selflink" href="http://proppy-go-ae.appspot.com/">proppy-go-ae.appspot.com</a>
	</article>

<article>
	<h3>
	演示
	</h3>
	<p>
		<a href="/progginator_">Progginator!</a>
	</p>
	<p>命令行输出：</p>
<pre>
2012-03-15 04:18:03.804 proggit: 110.451ms
2012-03-15 04:18:03.887 hackernews: 193.751ms
2012-03-15 04:18:03.887 progginator_: 193.824ms
</pre>
	<a class="selflink" href="http://proppy-go-ae.appspot.com/">proppy-go-ae.appspot.com</a>
</article>


      <article>
        <h3>
          哇！
        </h3>
	<ul>
	<li><code>encoding/*</code> 这些包让数据解析重新焕发趣味!</li>
	<li>Go runtime 有并行处理的天赋</li>
	<li>由于 goroutine 与 channel 的内存模型设计，同异步 API 也不需要了</li>
	</ul>
	<a class="selflink" href="http://proppy-go-ae.appspot.com/">proppy-go-ae.appspot.com</a>
       </article>


      <article>
        <h3>
          课后作业
        </h3>
	<ul>
    <li>滤除重复内容，增设排序处理</li>
	<li>通过模板与 css 美化应用</li>
	<li>用 Task Queue 异步装取数据源</li>
	<li>添加缓存机制!</li>
	<li>去 fork 这团代码: <a href="http://code.google.com/p/progginator">code.google.com/p/progginator</a>
	</ul>
  	<a class="selflink" href="http://proppy-go-ae.appspot.com/">proppy-go-ae.appspot.com</a>
       </article>

	<article>
	<h3>
	谢谢观看!
	</h3>
<pre>
	<img src="http://code.google.com/p/appengine-go/logo?cct=1325616189" height="40px"> := "<a href='http://code.google.com/appengine/docs/go/'>code.google.com/appengine/docs/go/</a>"
	<img src="http://weekly.golang.org/doc/gopher/frontpage.png"  height="40px"> := "<a href='http://golang.org'>golang.org</a>"
	<img src="images/proppy.jpg" height="40px"> := "<a href='http://profiles.google.com/proppy'>profiles.google.com/proppy</a>"
</pre>
	<small style="position:fixed; bottom: 16%;">翻译：<a href="http://lidian.info">xslidian</a><a href="mailto:xslidian@guao.hk">@</a><a href="http://guao.hk">guao.hk</a></small>
	<a class="selflink" href="http://proppy-go-ae.appspot.com/">proppy-go-ae.appspot.com</a>
      </article>